home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / editor / auror300.zip / PROJOPEN.AML < prev    next >
Text File  |  1996-07-17  |  2KB  |  86 lines

  1. //--------------------------------------------------------------------
  2. // PROJOPEN.AML
  3. // Open Project, (C) 1993-1996 by nuText Systems
  4. //
  5. // (see Projopen.dox for user help)
  6. //
  7. // This macro opens a project saved previously with the Projsave macro.
  8. // If the filename is not passed as arg 3, then the user is prompted
  9. // to enter the project filename.
  10. //
  11. // Usage:
  12. //
  13. // Select this macro from the Macro List (on the Macro menu), or run it
  14. // from the macro picklist <shift f12>.
  15. //--------------------------------------------------------------------
  16.  
  17. // compile time macros and function definitions
  18. include bootpath "define.aml"
  19.  
  20. // bookmark history buffer
  21. constant HISTORY = '_book'
  22.  
  23. // book field delimiters and regexp patterns
  24. constant DELIM = '\x00'
  25. constant FIELD = '{[~' + DELIM + ']+}' + DELIM + '#'
  26. constant BOOKFIELDS = FIELD + FIELD + FIELD + FIELD + FIELD + FIELD
  27.  
  28. // mark history buffer
  29. constant MARK = '_mark'
  30.  
  31. // edit windows only
  32. object edit
  33.  
  34. function onopen
  35.  
  36.   variable bookmark, filename, viewleft, viewtop, column, line
  37.  
  38.   passprev
  39.  
  40.   name = getbufname
  41.   pushcursor
  42.  
  43.   // restore bookmarks from the bookmark history buffer
  44.   oldbuf = gotobuf HISTORY
  45.   if oldbuf then
  46.     pushcursor
  47.     gotopos 1 1
  48.     while find DELIM + name + DELIM do
  49.       // parse history line into fields
  50.       parse BOOKFIELDS (gettext) 'x' ref bookmark ref filename
  51.                                      ref viewleft ref viewtop
  52.                                      ref column   ref line
  53.       gotobuf oldbuf
  54.       scrollcol viewleft
  55.       scrollrow viewtop
  56.       gotopos column line
  57.       setbook bookmark
  58.       gotobuf HISTORY
  59.     end
  60.     popcursor
  61.     gotobuf oldbuf
  62.   end
  63.   popcursor
  64. end
  65.  
  66. object entry
  67.  
  68. file = arg 3
  69. if not file
  70.   file = ask "Restore current state from project file" "_load"
  71. end
  72.  
  73. if file then
  74.   if openhistory (qualify (defext file "prj") (getbufname)) then
  75.     restoredesk 'c'
  76.     // restore marked block
  77.     if buffer? MARK then
  78.       command = gettext 1 MAX_COL 1 MARK
  79.       eval command [1..length command - 1]
  80.       destroybuf MARK
  81.     end
  82.   else
  83.     msgbox "Can't open " + file
  84.   end
  85. end
  86.